//
//  JMXChatDefines.h
//  JMXChatKit
//
//  Created by JMX on 2020/6/23.
//  Copyright © 2020 Uniauto. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
*  聊天工具栏状态
*/
typedef NS_ENUM(NSInteger, JMXChatBarState) {
    JMXChatBarStateDefault,
    JMXChatBarStateRecord,  // 语音
    JMXChatBarStateEmoji,   // 表情
    JMXChatBarStateMore,    // 更多
    JMXChatBarStateKeyborad,// 系统键盘
};


/**
*  聊天功能类型
*/
typedef NS_ENUM(NSInteger, JMXChatActionType) {
    JMXChatActionTypePhotoAlbum, // 照片
    JMXChatActionTypeShooting,   // 拍摄
    JMXChatActionTypeVoiceCall,  // 语音通话
    JMXChatActionTypeVideoCall,  // 视频通话
    JMXChatActionTypeLocation,   // 位置
    JMXChatActionTypeFile,       // 文件
    JMXChatActionTypeGraphic,    // 图文
    JMXChatActionTypeRedPacket,  // 红包
    JMXChatActionTypeFavorites,  // 收藏
    JMXChatActionTypeTransfer,   // 转账
    JMXChatActionTypeContactCard,// 名片
    JMXChatActionTypeCoupons,    // 卡券
};

/**
 *  聊天类型
 */
typedef NS_ENUM(NSInteger, JMXChatType) {
    JMXChatTypeSingle = 1,               /// 单聊
    JMXChatTypeGroup,                    /// 群聊
    JMZChatTypeCustomerService,          /// 客服
    JMXChatTypeCloud = 100               /// 云盘
};


/*
 * 文件类型
 */
typedef NS_ENUM(NSInteger, JMXFileType) {
    JMXFileTypeAudio = 2,    /// 音频
    JMXFileTypeImage = 3,    /// 图片
    JMXFileTypeVideo = 4,    /// 视频
    JMXFileTypeFile  = 5     /// 文件
};


/*
 * 消息状态
 */
typedef NS_ENUM(NSInteger, JMXMessageStatus) {
    JMXMessageStatusDelivering = -1, /// 发送中
    JMXMessageStatusSent       = 0,    /// 已发
    JMXMessageStatusReached    = 1,    /// 已达
    JMXMessageStatusRead       = 2,    /// 已读
    JMXMessageStatusFailed     = 3     /// 发送失败
};


/*
 * 消息方向
 */
typedef NS_ENUM(NSInteger, JMXMessageDirection) {
    JMXMessageDirectionSend,    /// 发送的消息
    JMXMessageDirectionReceive  /// 接收的消息
};


/*
 * 消息内容类型
 */
typedef NS_ENUM(NSInteger, JMXMessageType) {
    JMXMessageTypeUnknown,                 /// 未知（不支持的类型）
    JMXMessageTypeText      = 1,           /// 文字
    JMXMessageTypeImage     = 2,           /// 图片
    JMXMessageTypeFile      = 3,           /// 文件
    JMXMessageTypeAudio     = 4,           /// 语音
    JMXMessageTypeVideo     = 5,           /// 视频
    JMXMessageTypeVoiceCall = 6,          ///  语音通话
    JMXMessageTypeVideoCall = 7,           /// 视频通话
    JMXMessageTypeTip       = 8,           /// 提示（通知）
    JMXMessageTypeLocation  = 9,           /// 位置
    JMXMessageTypeQuestion  = 10,          /// 问答
    JMXMessageTypeEvaluate  = 12           /// 评价
};


/*
 * 消息安全类型
 */
typedef NS_ENUM(NSInteger, JMXMessageSecurityType) {
    JMXMessageSecurityTypeNone,
    JMXMessageSecurityTypeBurnAfterReading,       /// 阅后即焚
    JMXMessageSecurityTypeNoShoot                 /// 防拍照
};


/*
 * 泡泡方向
 */
typedef NS_ENUM(NSInteger, JMXBubbleDirection) {
    JMXBubbleDirectionLeft = JMXMessageDirectionReceive,
    JMXBubbleDirectionRight = JMXMessageDirectionSend
};


/*
 * 通话类型
 */
typedef NS_ENUM(NSInteger, JMXCallType) {
    JMXCallTypeVoice = 1,   /// 语音通话
    JMXCallTypeVideo        /// 视频通话
};


/*
 * 通话状态
 */
typedef NS_ENUM(NSInteger, JMXCallStatus) {
    JMXCallStatusNoResponse = 1, /// 无应答
    JMXCallStatusCancelled  = 2, /// 已取消
    JMXCallStatusRefused    = 3, /// 已拒绝
    JMXCallStatusFinished   = 4, /// 已完成
    JMXCallStatusBusying    = 5, /// 占线
};

/*
 * 通话方向
 */
typedef NS_ENUM(NSInteger, JMXCallDirection) {
    JMXCallDirectionSend,    /// 发送的通话
    JMXCallDirectionReceive  /// 接收的通话
};

/*
 * 提示类型
 */
typedef NS_ENUM(NSInteger, JMXTipType) {
    JMXTipTypeDefault,   
    JMXTipTypeTime       /// 时间
};


extern NSString * const JMXChatActionNames[12];
 
